前回は、テスト設計の一つのアプローチである「組み合わせテスト」の支援ツールについて紹介しました。今回は、テスト設計の別のアプローチとして、モデル化した設計情報からテストケースを作ることを支援するツールを紹介します。本稿ではこのアプローチを総称して「モデルベースドテスト(Model Based Testing)」と呼ぶことにします。
要件や設計をモデル化しテストケース作成
モデルベースドテストとは、その名の通りモデルを基にテストをするという考え方です。ここではテストケースの作成までを対象としますが、テストコードやテストスクリプトを作り、それらを使ってテスト実行を自動化するところまでを含めてモデルベースドテストという場合もあります。
モデルベースドテストでは、テスト対象となるシステムの要件や設計などをモデル化し、そのモデルからテストケースを作成します(図1)。
ここでいう「モデル」には、さまざまな形があります。多くの開発者が実施している「設計時に作成した状態遷移図からテストパターンを考える」といった手法も、「状態遷移モデル」を利用した立派なモデルベースドテストです。モデルベースドテストで利用される代表的なモデルを表1に示します。
モデル | 説明 | テストにおける考え方 |
---|---|---|
状態遷移 (図・表) |
状態と状態遷移、および状態を遷移させるイベントを定義したもの | テスト対象の状態/イベント/状態遷移を網羅的にテストする |
フローチャート | 処理の流れを表したもの | テスト対象の処理フローを網羅的にテストする |
原因結果グラフ | テスト対象の入力(原因)の組み合わせと、出力(結果)との関係をグラフで表したもの | テスト対象の論理関係を網羅的にテストする |
表1の「テストにおける考え方」に示した通り、モデルベースドテストはテスト対象をモデル化したものに対して、何らかの基準・観点に基づいて網羅的にテストケースを作成することができます。
このようなモデルをテストケース作成の対象となる成果物(要件定義書や設計書など)から作成し、テストケースを作成していくのがモデルベースドテストの流れです。あるいは、これらのモデルを要件定義書や設計書の一部として作成しておけば、図1の中央の「モデル」を改めて作る必要はなくなります。
以降では、このモデルベースドテストという考え方に基づいたテスト設計の支援ツールを、表1に挙げた三つのモデルのそれぞれについて紹介していきます。
状態遷移モデルに基づくテスト設計支援ツール
状態遷移モデルに基づくテスト設計では、状態遷移図や状態遷移表(モデル)を作成し、それらからテストケースを作成していきます。これを支援する主なツールを表2に挙げます。
ツール名 | 提供元 | 有償/無償 |
---|---|---|
ZIPC | キャッツ | 有償 |
astah* 品質スイートプラグイン |
チェンジビジョン | 有償(有償ツールで利用可能なプラグイン) |
stateMatrix | オープンソース | 無償 |
例えば「stateMatrix」を用いると、二つの状態間の関係(事前状態、イベント1回、事後状態の組み合わせ。例えば、停止中に再生ボタンを押すと再生中になる)を示した状態遷移表から、2回のイベントによる状態遷移のすべてのパターン(事前状態、イベント2回、事後状態の組み合わせ。例えば、停止中に再生ボタン、停止ボタンを押すと停止中になる)が図2のように自動生成されます。これにより、複数の状態を遷移する場合のテストを実施することができ、状態の変化に伴い想定外の動作をしないかどうかを確認できます。